#ifndef _ELEMENT
#define _ELEMENT


/* Codes entiers pour les types de formes */
#define ARBUSTE 1
#define BUISSON 2
#define BARRIERE 3
#define CLOWN 4
#define OISEAU 5
#define MAGICIEN 6
#define MOUSTACHU 7


struct sElem
{
  int x;
  int y;
  int type_de_forme;
};
typedef struct sElem Elem;


void renseignerChampsElem(Elem * e, int x, int y, int t);
/* Preconditions : aucune
   Postconditions : les champs de *e prennent les valeurs passees en parametre */


void afficherElem(Elem e);
/* Preconditions : aucune
   Postconditions : les coordonnees et l'identifiant de e sont affiches
   dans la console, sans retour a la ligne */

void affecterElem(Elem * e1, Elem e2);
/* Preconditions : aucune
   Postconditions : *e1 est une exacte copie de e2 */

int estInferieurEnY(Elem e1, Elem e2);
/* Preconditions : aucune
   Resultat : 1 si e1 a un y strictement inferieur a celui de e2, 0 sinon */

int estSuperieurEnY(Elem e1, Elem e2);
/* Preconditions : aucune
   Resultat : 1 si e1 a un y strictement superieur a celui de e2, 0 sinon */

int estSuperieurOuEgalEnY(Elem e1, Elem e2);
/* Preconditions : aucune
   Resultat : 1 si e1 a un y superieur ou egal a celui de e2, 0 sinon */

int estIdentique(Elem e1, Elem e2);
/* Preconditions : aucune
   Resultat : 1 si e1 et e2 ont meme x, meme y, meme type de forme et meme identifiant.
   Renvoie 0 sinon. */



#endif
